class Admin::SlideImagesController < ApplicationController
  layout 'admin'

  def index
    @slides = SlideImage.all

    respond_to do |format|
      format.html
    end
  end

  def new
    @slide = SlideImage.new

    respond_to do |format|
      format.html
    end
  end

  def create
    @slide = SlideImage.new(params[:slide_image])

    respond_to do |format|
      if @slide.valid?
        @slide.save

        format.html { redirect_to admin_slide_images_url }
      else
        format.html { render :new }
      end
    end
  end

  def destroy
    @slide = SlideImage.find(params[:id])

    if @slide.destroy
      flash[:success] = 'El banner ha sido eliminado.'
    else
      flash[:fail] = 'No se ha podido eliminar el banner. Por favor, intente nuevamente.'
    end

    respond_to do |format|
      format.html { redirect_to admin_slide_images_url }
    end
  end

  def change_order
    @slides = SlideImage.all

    respond_to do |format|
      format.html
    end
  end

  def update_order
    @error = false

    begin
      slides = params['slide_images']

      slides.each do |slide|
        unless slide[1].blank?
          slide_id = slide[0].to_i
          order = slide[1].to_i

          slide_image = SlideImage.find(slide_id)
          slide_image.update_attribute(:listing_order, order)
        else
          raise
        end
      end
    rescue
      @error = true
    end

    respond_to do |format|
      unless @error == true
        flash[:success] = 'El orden ha sido actualizado satisfactoriamente.'
        format.html { redirect_to admin_slide_images_url }
      else
        @slides = SlideImage.all
        flash[:fail] = 'No se pudo actualizar el orden de los banners. Verifique que los valores ingresados sean correctos.'
        format.html { render :change_order }
      end
    end
  end
end
